#include <cstdio>
#include <set>
#include <map>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
map<int,int>mp;
map<int,int> ::iterator it;
set<int>st;
long long int t[100010];
int main()
{
	int n,m,min,ans,temp;
	while(scanf("%d %d",&n,&m)!=EOF)
	{
		ans = 0;
		min = 100010;
		mp.clear();
		st.clear();
		for(int i = 0;i<n;i++)
		{
			scanf("%d",&t[i]);
			mp[t[i]]++;
		}
		for(int i = 1;i<=m;i++) st.insert(i);
	//	printf("temp = %d\n",temp);
		for(int i =0;i<n;i++)
		{
		//	printf("**%d\n",t[i]);
			long long int judge = *(st.find(t[i]));
		//	printf("++%d\n",judge);
			if(judge!=t[i])
			{
				ans++;
				mp[t[i]]--;
				if(mp[t[i]]>min)
				{
					st.erase(temp);
					st.insert(t[i]);
					for(int i = 0;i<n;i++)
					{
						if(min> mp[t[i]]&&*(st.find(t[i]))==t[i])
						{
							min = mp[t[i]];
							temp = t[i];
						}
					}
				}
			}
		}
		printf("%I64d\n",ans);
	}
}
